import {MessageBox, Message} from 'element-ui';
import axios from 'axios';
import user from "./system/user";
import role from "./system/role";
import auth from "./system/auth";

axios.defaults.timeout = 20000
axios.defaults.headers.common['Cache-Control'] = 'no-cache'

// 在所有发送请求之前统一设置请求信息
axios.interceptors.request.use(function (config) {
  config.headers = config.headers || {}
  const token = sessionStorage.getItem('zhanyun.token')
  // 用户登录后获取到的token
  if (token) {
    config.headers.Authorization = token.replace(/(^\\")|(\\"$)/g, '')
  }

  config.baseURL = process.env.VUE_APP_BASE_API
  return config;
}, function (error) {
  return Promise.reject(error);
});

// 在所有接到响应之后，统一处理响应信息
axios.interceptors.response.use(res => {
  // 对响应数据做些什么
  if (res.data.code === 401) {
    MessageBox.alert(res.data.message, '登录超时', {
      confirmButtonText: '确定',
      callback() {
        auth.logout()
      }
    });
  } else if (res.data.code !== 200) {
    Message.warning({
      message: res.data.message,
    });
  }
  return res
}, err => {
  window.console.log(err)
  // 对响应错误做些什么
  if (err.response.data.code === 401) {
    alert(err.response.data.message)
  }
  return Promise.reject(err)
});

export default {
  ...auth,
  ...user,
  ...role
}



